package com.zjy.software.javabase;

public  class Person extends Object{
    public static void main(String[] args) {
//       Person person = new Person("李四", 20);
//       person.eat();
//        System.out.println(person.HEIGHT);
//
//        final Person tmpPerson=new Person();
//        System.out.println("tmpPerson.getName() = " + tmpPerson.getName());
//        tmpPerson.setName("赵六");
//        System.out.println("tmpPerson.getName() = " + tmpPerson.getName());






        //eat();
    }
    public static final int HEIGHT=180;
    //创建字段
    private  String name = "张三";
    //字段名叫做age
    private int age=30;

    {
        System.out.println("&&&&&&&&&&&&&&&&&&&我是初始化块1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
    }

    {
        System.out.println("&&&&&&&&&&&&&&&&&&&我是初始化块2&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
    }

    {
        System.out.println("&&&&&&&&&&&&&&&&&&&我是初始化块3&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
    }

static {
    System.out.println("############################我是静态块,整个对象不管创建几次,我只执行一次################################");
}


    Person(String name){
        this(name,0);
        System.out.println("我是构造器,系统在初始化当前类的对象时,就会调用我");
    }

    Person(int age){
        this(null,age);
    }
    Person(String name,int age){
        this.name=name;
        this.age=age;
    }

    /**
     * 一般项目中,一定要有一个默认的构造器,否则有可能定义了一个有参构造器,那么系统就不会自动生成默认的构造器
     */
    Person(){
        System.out.println("我是默认的构造器");
    }

    /**
     * 吃饭的方法
     */
    protected   void eat(){
        System.out.println("一般吃饭");
        System.out.println(P.DAYS_IN_A_WEEK);

        //静态方法调用普通方法

    }
    //形参名叫age
    public void setAge(int age){
        //把外部传入的age给当前对象的字段变量age
        if (age <= 0) {
            System.out.println("年龄不能小于等于0");
            return;
        }

        if (age > 120) {
            System.out.println("年龄不能大于120,你有诈骗的嫌疑");
            return;
        }


        this.age=age;
    }

    public void setName(String name){
        int count=10;
        if (count >= name.length()) {
            int sum=100;
            System.out.println("名字不能超过10个字符");
            System.out.println(sum);
        }

        this.name=name;
    }
    public String getName(){
        return name;
    }

    public int getAge(){
        return age;
    }

    private void sleep(){
        System.out.println("睡觉");
    }
}

